Software-defined radio (SDR) holds the promise of fully programmable wireless communication systems, effectively supplanting conventional radio technologies, which typically have the lowest communication layers implemented primarily in fixed, custom hardware circuits. Realizing the promise of SDR in practice, however, has presented developers with a dilemma. Many current SDR platforms are based on either programmable hardware such as field programmable gate arrays (FPGAs) or embedded digital signal processors (DSPs). Such hardware platforms can meet the processing and timing requirements of modern high-speed wireless protocols, but programming FPGAs and specialized DSPs can be a difficult task. For example, developers have to learn how to program each particular embedded architecture, often without the support of a rich development environment of programming and debugging tools. Additionally, such specialized hardware platforms can also be expensive, e.g., at least several times the cost of an SDR platform based on a general-purpose processor (GPP) architecture, such as a general-purpose Personal Computer (PC).
On the other hand, SDR platforms that use general-purpose PCs enable developers to use a familiar architecture and environment having numerous sophisticated programming and debugging tools available. Furthermore, using a general-purpose PC as the basis of an SDR platform is relatively inexpensive when compared with SDR platforms that use specialized hardware. However, the SDR platforms that use a general purpose PC typically have an opposite set of tradeoffs from the specialized architectures discussed above. For example, since PC hardware and software have not been specially designed for wireless signal processing, conventional PC-based SDR platforms can achieve only limited performance. For instance, some conventional PC-based SDR platforms typically achieve only a few Kbps throughput on an 8 MHz channel, whereas modern high-speed wireless protocols such as 802.11 support multiple Mbps data rates on a much wider 20 MHz channel. Thus, these performance constraints prevent developers from using PC-based SDR platforms to achieve the full fidelity of state-of-the-art wireless protocols while using standard operating systems and applications in a real-world environment.